using System;
using System.ComponentModel;

namespace Locator.Silverlight.Client.Models.PersonalLocationsServiceReference
{
    public interface IPersonalLocationsServiceAsync : IPersonalLocationsService
    {
        void AddPersonalLocationForCurrentUserAsync(string description, double latitude, double longitude);
        event EventHandler<AsyncCompletedEventArgs> AddPersonalLocationForCurrentUserCompleted;

        void DeletePersonalLocationForCurrentUserAsync(int personalLocationId);
        event EventHandler<AsyncCompletedEventArgs> DeletePersonalLocationForCurrentUserCompleted;

        void GetPersonalLocationForCurrentUserAsync(int ID);
        event EventHandler<GetPersonalLocationForCurrentUserCompletedEventArgs> GetPersonalLocationForCurrentUserCompleted;

        void GetPersonalLocationsForCurrentUserAsync();
        event EventHandler<GetPersonalLocationsForCurrentUserCompletedEventArgs> GetPersonalLocationsForCurrentUserCompleted;

        void SearchByAddressAsync(string streetAddress, string country, string province, string city);
        event EventHandler<SearchByAddressCompletedEventArgs> SearchByAddressCompleted;

        void SearchByPostalCodeAsync(string postalCode, string country);
        event EventHandler<SearchByPostalCodeCompletedEventArgs> SearchByPostalCodeCompleted;
    }
}